package com.urea.system.domain.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.urea.common.annotation.Excel;
import com.urea.common.core.domain.BaseEntity;
import com.urea.system.domain.PayInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单对象 t_order
 * 
 * @author liuzd
 * @date 2023-08-01
 */
@Data
@ToString
public class OrderDto extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    @ApiModelProperty("订单号")
    private String orderNo;

    /**设备名称*/
    @ApiModelProperty("设备名称")
    private String terminalName;
    /**设备编号*/
    @ApiModelProperty("设备编号")
    private String terminalNo;

    @ApiModelProperty("手机号")
    private String phone;

    /** 用户类型;0普通用户，1电子卡用户，2车队用户 */
    @Excel(name = "用户类型;0普通用户，1电子卡用户，2车队用户")
    @ApiModelProperty( "用户类型;0普通用户，1电子卡用户，2车队用户")
    private String userType;

    @ApiModelProperty("用户余额")
    private String balance;

    /** 所属代理商 */
    @Excel(name = "所属代理商")
    @ApiModelProperty("所属代理商")
    private String agentName;

    /** 所属门店 */
    @Excel(name = "所属门店")
    @ApiModelProperty("所属门店")
    private String storeName;

    /** 所属车队 */
    @Excel(name = "所属车队")
    @ApiModelProperty("所属车队")
    private String fleetName;

    /** 业务类型;支付，退款，提现 */
    @Excel(name = "订单类型")
    @ApiModelProperty( "业务类型;支付，退款，提现")
    private String payMethod;

    /** 订单金额 */
    @Excel(name = "订单金额")
    @ApiModelProperty("订单金额")
    private BigDecimal amount;

    /** 支付金额 */
    @Excel(name = "支付金额")
    @ApiModelProperty("支付金额")
    private BigDecimal payAmount;

    /** 退款金额 */
    @Excel(name = "退款金额")
    @ApiModelProperty("退款金额")
    private BigDecimal refundAmount;

    /** 返利金额 */
    @Excel(name = "返利金额")
    @ApiModelProperty("返利金额")
    private BigDecimal rebateAmount;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("订单时间")
    @Excel(name = "订单时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;



    private Long agentId;


    /** 订单状态;0已创建，1已完成，2已取消 */
    @ApiModelProperty("订单状态;0已创建，1已完成，2已取消")
    private String status;

    /** 支付方式;0余额支付，1微信 */
    @ApiModelProperty("支付方式;0余额支付，1微信")
    private String payType;

    /** 客户id */
    @ApiModelProperty("客户id")
    private Long customerId;



    /** 终端id */
    @ApiModelProperty("终端id")
    private Long terminalId;

    /** 终端id */
    @ApiModelProperty("终端用户id")
    private Long terminalUid;

    /** 门店id  */
    @ApiModelProperty("门店id")
    private Long storeUid;



    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("支付时间")
    private LocalDateTime payTime;

    /** 支付描述 */
    @ApiModelProperty("支付描述")
    private String orderDesc;

    /** 订单明细;订单明细json */
    @ApiModelProperty("订单明细;订单明细json")
    private String orderDetail;

    @ApiModelProperty("开始时间")
    private String startDate;
    @ApiModelProperty("结束时间")
    private String endDate;
    private String extraInfo;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updatedTime;




}
